Method for describing existing data by a natural language and program for that

ABSTRACT

The object of the present invention is to make it easier to use an existing data created by certain software programs on a different software program or use the data for different purposes. The object is achieved by the process including the following steps: analyzing an existing data created by a specific software object; converting the data into an instruction sequence that the software object has executed to create the aforementioned data; converting the instruction sequence into a function describing expression of natural language understandable to the user; obtaining semantic information from the function describing expression; and creating a request describing expression by adding a meaning to the function describing expression. The request describing expression is described in natural language, which contains all the information required to reproduce the original data.

TECHNICAL FIELD

The present invention relates to a technology for describing an existingdata created by a software object operable on a computer, and especiallyto a technology for converting an existing data into natural languagecharacter strings as an input for a software object that is operablewith natural language. In this specification, a software object meanseither an operating system (OS) for controlling electronic devices, suchas personal computers or microcomputer-controlled devices, or anapplication program operable on the OS. Also, in this specification, asystem that is constructed to receive signals from an input device (akeyboard, a microphone, handwriting tablet, etc.) to create a characterstring of natural language, parse the character string, and createoperational instructions for a software object on the basis of theanalysis result, is called a “natural language interface.”

BACKGROUND ART

For years, many people have conducted research on natural languageinterfaces for operating software objects with natural language.Examples include the handwriting input method and device disclosed inthe Japanese Unexamined Patent Publication No. H8-147096, theinformation processor disclosed in the Japanese Unexamined PatentPublication No. H6-75692, the information input device disclosed in theJapanese Unexamined Patent Publication No. H6-131108 and the informationinput device disclosed in the Japanese Unexamined Patent Publication No.H6-282566. These conventional natural language interfaces are used tocall the built-in functions of a software object with natural language.For example, the Japanese Unexamined Patent Publication No. H6-75692discloses a word processor that converts a specified character stringinto double-sized characters when a user writes the word “enlarge” onthe handwriting input device. The Japanese Unexamined Patent PublicationH8-147096 discloses a videocassette recorder having a control systemthat starts the recording operation when a user writes the word “record”on the handwriting input device.

These conventional natural language interfaces are each designed for aspecific type of software object, such as a word processor program or acontrol program for a videocassette recorder, which are not basicallydesigned on the assumption that a natural language interface developedfor a given software object might be also used for another type ofsoftware object. Therefore, when a natural language interface is neededfor a certain software object, it is necessary for software developersto spend much energy to develop a newly dedicated natural languageinterface.

Moreover, for the conventional natural language interfaces, it isassumed that users should enter instructions for calling functionsprepared beforehand for the software object. Therefore, the user musthave information (or knowledge) beforehand about what functions thesoftware object has and what kinds of natural language should be used tocall those functions. This means that the user should give instructionsin compliance with the functions of the software object, rather than thesoftware object working in response to the request from the user.Remaining in such a form of implementation will inevitably reduce theflexibility in the operation of the software object with naturallanguage. For example, suppose that a user thinking “I want to create anotice of a movie show” has entered the phrase that expresses the ideaas it is. The phase “I want to create a notice of a movie show” is notan instruction for explicitly calling a certain function of the softwareobject, but an expression of the request, desire or intension of theuser. The conventional natural language interfaces cannot appropriatelyprocess such an input.

In view of the above problems, the applicants of the present inventionhave invented a natural language interface having versatility forallowing unified operation of different software objects and flexibilityfor appropriately processing an input even when it is a natural languageexpression of a request, desire or intension of a user (Japanese PatentApplication No. 2002-76319). According to this invention, a characterstring of natural language entered is parsed as an expression of theuser's request, and a software object most suitable for carrying out aprocess corresponding to the request is selected. A function describingexpression for making the software object carry out the aforementionedprocess is intermediately created. The function describing expression isthen converted into an instruction sequence that can be executed by anOS or a program.

Many conventional software objects save the data created for realizingthe user's request in a format that is understandable only to thesoftware objects themselves. The data created by a software object maybe a content data, such as a document or a movie, or a control sequencedata for controlling other software objects or hardware devices. Thesedata themselves are poorly reusable because their format isunderstandable only to specific software objects. For example, suppose auser wants use a certain word processor to edit and reuse a documentdata created by another word processor. In this case, it is necessary toconvert the document data either into a specific format understandableto a specific word processor or into a universal format understandableto any word processor. This problem relating to formats also arises whena document data created by a word processor is to be used for adifferent purpose on a different type of software object, such as ane-mail client or a presentation application, in which case a troublesomedata-conversion process should be carried out or the data has limiteduses.

Furthermore, in the case of conventional software objects, the datacreated for realizing the user's request usually contain only a minimalset of information necessary for realizing the user's request. Forexample, a document data created by a word processor may contain variouskinds of character strings, such as the document title, the creationdate or the creator's name, but the data usually does not includeinformation that specifies which of the character strings is the titleand which is the creation date (i.e. the semantic information of thecharacter strings). Therefore, when a user changes a part of thedocument data and uses it for a different purpose, there is noinformation that allows software objects to determine which part of thedocument should be changed, so that the user has to determineeverything.

None of conventional natural language interfaces has solved theabove-described data reusability problem that the conventional softwareobjects have. Any existing data that a user has created with a softwareobject should contain sufficient information necessary for realizing theuser's request, though it is limited to a specific use. Therefore, whensuch a data is to be used for a different purpose, a desired data canoften be obtained by changing the representation format of the data withanother software object or modifying only a part of an existing data. Itis our everyday practice to understand the structure and meaning of anexisting data and create a desired data by minimally modifying theexisting data with an appropriately selected software object. Thoughconventional natural language interfaces take into account the requestthat a user enters using natural language, they are not aimed at thereuse of data produced by software objects. As a result, the user isforced to be heavily loaded.

The present invention addresses the above-described problems, an objectof which is to provide a technology for realizing a natural languageinterface having versatility for allowing unified operation of differentsoftware objects as well as flexibility for allowing data created forrealizing the user's request to be used for different purposes.

DISCLOSURE OF THE INVENTION

To solve the above-described problem, the present invention ischaracterized in that a computer carries out a process including stepsof:

designating an existing data created by a specific software object;

analyzing the aforementioned data to convert it into an instructionsequence that the software object has executed to create theaforementioned data;

converting the instruction sequence into a function describingexpression of natural language understandable to a user; and

obtaining semantic information from the function describing expressionand creating a request describing expression by adding a meaning to thefunction describing expression.

The present invention also provides a program for making a computercarry out the above-described process.

The process steps according to the present invention are as follows. Theuser directly or indirectly designates a data to be referenced forrealizing the user's request. The word “directly” hereby means that theuser selects an existing data (i.e. a data file in usual cases) createdby the user himself or herself or by other users with a specificsoftware object, using a function of the OS (operating system) of thecomputer. The word “indirectly” hereby means the steps of interpretingthe request entered by the user through an input means of the computerand selecting and designating one of the plural pieces of existing datathat is the most suitable for realizing the user's request. It isassumed hereby that the user has directly designated a document datawith the title “Notice of Movie Show.”

The next step is to analyze the designated data and convert it into aninstruction sequence that can be executed by the software object withwhich the data was created. More specifically, the designated data isconverted into an instruction sequence, using a dictionary (called the“data analysis unit dictionary” hereinafter) specifying thecorrespondence between instruction sequences that the software objectcan execute and data formats. The data analysis unit dictionary isprepared for each software object, with which the designated data iscreated. In the case the aforementioned document data having the title“Notice of Movie Show” is designated, the data analysis unit dictionaryfor the word processor used to create the document data is selected, andif, for example, a character string having the size of 24 points isfound in the document data, it is converted into“Selection.Font.Size=24.”

The next step is to convert the instruction sequence into a functiondescribing expression of natural language understandable to the user.More specifically, the instruction sequence is converted into a functiondescribing expression, using a dictionary (called the “instructiontransmission unit dictionary” hereinafter) specifying the correspondencebetween function describing expressions of natural languageunderstandable to the user and instruction sequences. The instructiontransmission unit dictionary is prepared for each software object thatcan execute instruction sequences. In the case the aforementioneddocument data having the title “Notice of Movie Show” is designated, theinstruction transmission unit dictionary for the word processor used tocreate the document data is selected. Then, for example, the instructionsequence “Selection.Font.Size=24” is converted into “set the size of theselected character string at 24 points.”

The next step is to obtain semantic information from the functiondescribing expression obtained by the conversion and create a requestdescribing expression by adding a meaning to the function describingexpression. More specifically, a request describing expression iscreated from the function describing expression, using a dictionary(called the “function translation unit dictionary” hereinafter)specifying the correspondence between semantic expressions of user'srequests and functional descriptions. FIG. 2 shows an example of thefunction translation unit dictionary. This dictionary is a conversiontable listing words and phrases used in the function describingexpression or request describing expression, where each word or phraseis paired with one or more words or phrases (phrase A, phrase B) thatare replaceable with each other. According to this conversion table, thephrase “increase the size of the character string” is converted to thephrase “visually emphasize the character string.” The contraryconversion from “visually emphasize the character string” to “increasethe size of the character string” is also possible. The formula “($A=)”in FIG. 2 is a parameter representing a variable element within thephrase. Setting a specific value for it, as in “($A=12)”, will make thephrase available as a normal function describing expression and arequest describing expression.

Based on the dictionary shown in FIG. 2, the steps of creating a requestdescribing expression from a function describing expression is describedin more detail. Suppose that a series of function describing expressionsare given as follows:

-   “set the size of the selected character string at 24 points”,-   “center the selected character string”, and-   “give the character string a wavy form.”

In the function translation unit dictionary, the above series ofexpressions match the following conversion pairs:

-   “increase the size of the character string” and “set the size of the    character string at ($B=24) points”,-   “visually emphasize the character string” and “increase the size of    the character string”,-   “visually emphasize the character string” and “center the character    string”, and-   “visually emphasize the character string” and “give the character    string a wavy form.”    These expressions can be converted into the following description:-   “The selected character string is visually characterized.”

Suppose also that a description “enter a character string ‘Notice ofMovie Show’” is at the beginning of the function describing expression.In the function translation unit dictionary, the above expressionmatches the following conversion pairs:

-   “document title” and “‘Notice of ($A=)’”, and-   “enter the document title” and “enter a character string ‘($A=)’/put    the character string at the beginning of the document.”

Combining these with the aforementioned description “the selectedcharacter string is visually characterized” results in the followingdescription:

-   “Enter a character string of document title ‘Notice of    ($A1=($A2=Movie Show)’.”    This means that the entered character string “Notice of Movie Show”    is recognized as the document title.

These results show that a series of function describing expressionsincluding:

-   “enter a character string ‘Notice of Movie Show’”,-   ““select the character string entered”,-   “set the size of the selected character string at 24 points”,-   “center the selected character string”, and-   “give the character string a wavy form”    is finally converted into template-like request describing    expressions as follows:-   “enter a character string of document title ‘Notice of    ($A1=($A2=Movie Show)’”,-   “set the size of the character string of document title at ($B=24)    points”,-   “center the character string of document title”, and-   “give the character string of document title a wavy form.”

As described above, the present invention provides a basic architecturefor automatically creating request describing expressions of naturallanguage for realizing the user's request from existing data createdwith software objects. The present invention makes it easier to realizethe association between software objects and natural languageinterfaces. The request describing expression created thereby isexpressed in natural language, which is independent of any specificsoftware object. Therefore, when a user's request is to be realized byoperating a different software object, a mechanism for operating thesoftware object can be implemented by simply creating a dictionary thatassociates request describing expressions with instruction sequences.

The request describing expression created not only uses natural languageunderstandable to the user, but also additionally includes semanticinformation contained in the user's request. Moreover, variable elementsare recognized. Therefore, the request describing expression can be usedfor different purposes by minimally modifying the variable elementsincluded in the request. As a result, an enormous amount of data createdpreviously by the user or by other users can be effectively used forvarious purposes.

For example, since the request describing expression obtained by themethod according to the present invention is a natural languageexpression, it can be used, as it is, as an input for the methoddescribed in the Japanese Patent Application No. 2002-76319. Thecombination of these two inventions enables the data conversion throughnatural language. Suppose that a data created by a word processor “A” isto be used on another word processor “B” that does not have a conversionfilter for reading data produced by “A” and there is no word processor“A” at hand. In this case, the data produced by “A” can be convertedinto an intermediate data of natural language by a method according tothe present invention, and the intermediate data can be converted to adata in the “B” format by a method according to the Japanese PatentApplication No. 2002-76319. The intermediate data, which is a requestdescribing expression of natural language, allows the user to check itscontent and, if necessary, the user can edit the content as desiredbefore reading it into “B”. The request describing expression includessemantic information that shows the meaning of each component of thedocument, such as “title”, “address” or “date.” Therefore, even suchusers that do not know how to operate “A” or “B” can easily edit thedocument.

It is also possible to analyze the structure of the original data filefrom the request describing expression of natural language obtained bythe method according to the present invention. The method according tothe present invention may be also used to convert a device-setting datainto a request describing expression of natural language, which can beedited by the user as desired and reconverted to the device-setting databy the method according to the Japanese Patent Application No.2002-76319. The present invention may be also used to convert a sampledocument data into a request describing expression of natural language.This provides a document showing operational steps for composing thesample document, which can be used to prepare a textbook for learners ofthe operation of the application. The request describing expression ofnatural language obtained by the method according to the presentinvention may be translated into another language by an existingtranslation program. This provides a document in which commands andinstructions on format and layout as well as text information aretranslated into that language.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart showing an example of the steps of creating andusing a data description by a method according to the present invention.

FIG. 2 shows an example of the function translation unit dictionary.

FIG. 3 is a block diagram showing the hardware construction of acomputer system as an embodiment of the present invention.

FIG. 4 is a block diagram showing the functional configuration of anatural language interface constructed according to the presentinvention.

FIG. 5 partially shows an example of the structure of the datadesignation unit dictionary.

BEST MODE FOR CARRYING OUT THE INVENTION

A system embodying the present invention is described with reference tothe drawings. The system of the present embodiment uses the methoddescribed in the Japanese Patent Application No. 2002-76319 toindirectly designate a file, and then converts the data contained in thefile into a request describing expression of natural language by amethod according to the present invention. FIG. 3 shows the schematicconstruction of the system of the present embodiment. This computersystem includes a commonly used personal computer and has a centralprocessing unit (CPU) 10, a read-only memory (ROM) 11, a random accessmemory (RAM) 12, an external storage controller 13 with an externalstorage (or auxiliary storage) 14, a network controller 15 forcommunication with external systems, a user interface adapter 16, adisplay controller 21 for a display 22, a sound controller 23 and aspeaker 24. Various input devices (a keyboard 17, a microphone 18 forvoice input, a mouse 19 and a tablet 20 for handwriting input) forinputting a series of words are connected to the user interface adapter16.

FIG. 4 shows the functional construction of the system of the presentembodiment. In FIG. 4, the natural language input unit 30 is a means forreceiving a word, a series of words or a sentence (which are generallyreferred to as “the words” hereinafter”) as input and creating acharacter string representing the words. The input method of the wordcan be selected from the following choices: key input, using thekeyboard 17; voice input, using the microphone 18; character input panelon the screen, operable with the mouse 19; and handwriting input, usingthe tablet 20. Of course, it is possible to use another method o theinput of the words as long as an input device with a correspondingsoftware program (driver) is available.

The natural language analysis unit 34 has the functions of analyzingnatural language, parsing a character string by using the dictionaries,interactively creating a syntactic sentence, and managing categorydictionaries. It parses the above-mentioned character string to create asemantic expression. For the parsing of character strings, thetechnologies generally known in the field of natural language processingcan be used. For example, well-known natural language analysis enginesinclude “ChaSen” developed by the Nara Institute of Science andTechnology and “KNP” developed by Kyoto University, and these existingengines can be used to construct the natural language analysis unit 34.

The data designation unit 36 searches the data designation unitdictionary 42 for all the concepts present in the semantic expressionand selects a software object most suitable for carrying out the processcorresponding to the user's request as well as a data created by thesoftware object. The data designation unit dictionary 42 holdsinformation that associates each concept used in semantic expressionswith software objects available on the system along with data created bythe software objects.

The data analysis unit 37 carries out the syntax analysis of the datadesignated by the data designation unit 36, and converts it into anexecutable instruction sequence for creating the designated data.

The instruction sequence conversion unit 38 searches the instructiontransmission unit dictionary 44 for the instruction sequence created bythe data analysis unit 37, and converts it into a function describingexpression of natural language.

The function description conversion unit 40 searches the functiontranslation unit dictionary 46 for the function describing expressioncreated by the instruction sequence conversion unit 38 in order toobtain semantic information from the function describing expression, andcreates a request describing expression by adding a meaning to thefunction describing expression. An example of the construction of thefunction translation unit dictionary is as shown in FIG. 2.

The function translation unit 41 searches the function translation unitdictionary 46 for all the concepts present in the semantic expression,and replaces each concept with a functional describing expressionsuitable for the function of the software object stored in thedictionary.

The instruction transmission unit 39 searches the instructiontransmission unit dictionary 44 for all the concepts present in thefunctional describing expression created by the function translationunit 41, and creates an instruction sequence for executing a function ofthe software object 45 stored in the dictionary. For example, theinstruction sequence may be an API of the software object 45 and itsparameters, or a sequence of commands passed through a command stream.The instruction transmission unit 39 executes the instruction sequenceand executes the function of the software object 45.

The response generation unit 33 receives the result of execution of thesoftware object 45 conducted by the instruction transmission unit 39,and makes a response in the form desired by the user. The response cantake various forms, such as showing on the display 22, printing with aprinter (not shown), storing information in a database or controlling anapparatus.

The dictionary management unit 35 carries out the creation of newinformation for the data designation unit dictionary 42, the dataanalysis unit dictionary 43, the instruction transmission unitdictionary 44 and the function translation unit dictionary 46, as wellas the changing, deleting and viewing of information stored in thesedictionaries. The control unit 32 sends/receives necessary data to/fromthe natural language input unit 30, the natural language analysis unit34, the data designation unit 36, the data analysis unit 37, theinstruction sequence conversion unit 38, the instruction transmissionunit 39, the function description conversion unit 40, the functiontranslation unit 41, the response generation unit 33, the userinteraction unit 31, and the dictionary management unit 35, and controlstheir operations.

The steps of processing the character string “I want to create a noticeof a movie show” with the system of the present embodiment is described,referring to FIGS. 1, 2 and 5.

When a user, intending to create a notice of a movie show, enters asentence “I want to create a notice of a movie show” through thekeyboard 17, the natural language input unit 30 receives the characterstring “I want to create a notice of a movie show” through the keyboardinput interface (Step 50). This character string is passed to thenatural language analysis unit 34.

The natural language analysis unit 34 parses the character stringreceived and creates a semantic expression consisting of, for example,four words syntactically and semantically separated from each other:“(I) want”, “(to) create”, “a notice”, “(of) a movie show” (Step 51).This semantic expression is passed to the data designation unit 36.

Based on the data designation unit dictionary 42, the data designationunit 36 rates each software object with respect to the above-mentionedfour words. FIG. 5 partially shows an example of the structure of thedata designation unit dictionary 42. From the semantic expression “(I)want”, “(to) create”, “a notice”, “(of) a movie show”, the dictionaryshown in FIG. 5 gives the following rating for each software object:

Word Processor=1.7

E-mail Client=1.2

Drawing Software=0.2

From this result, the data designation unit 36 determines that thesoftware object with the highest comprehensive rating is the “wordprocessor”, and carries out the data-designating process for the “wordprocessor”, which is stored in the data designation unit dictionary 42.

The data-designating process designates the most suitable data byretrieving appropriate data and evaluating the data on the basis of thesemantic expression. For example, a data file or data files created bythe software object selected previously (i.e. “word processor” in thepresent example) and having file names containing a word used in thesemantic expression are retrieved, from which the data file having thelatest date is designated as the most suitable one. In advance of theautomatic evaluation of the most suitable data file, a list of possiblefiles may be displayed to give the user a chance for viewing andselecting. It is assumed hereby that a data file named “MovieShow” isselected. (Step 52)

The data analysis unit 37 carries out the syntax analysis of the datadesignated by the data designation unit 36 and converts it into aninstruction sequence executable by the software object used for creatingthe designated data. For example, when the data designated by the datadesignation unit 36 is a document file created by a word processor, thedata analysis unit 37 uses a data analysis dictionary 43 for the wordprocessor to read each character string data contained in the documentdata and the layout information specifying the size and position of thecharacter string and convert the data and information into aninstruction sequence that the software object can execute. For example,when a character string with a size of 24 points has been found in thedocument data, it is converted into “Selection.Font.Size=24.” (Step 53)

Next, the instruction sequence conversion unit 38 searches theinstruction transmission unit dictionary 44 for the instruction sequencecreated by the data analysis unit 37 and converts it into a functiondescribing expression of natural language independent of any specificsoftware object. For example, the instruction sequence“Selection.Font.Size=24” is converted into “set the size of the selectedcharacter string at 24 points.” (Step 54)

The function description conversion unit 40 searches the functiontranslation unit dictionary 46 (FIG. 2) for the function describingexpression created by the instruction sequence conversion unit 38 toobtain semantic information from the function describing expression andcreate a request describing expression by adding a meaning to thefunction describing expression. For example, a series of functiondescribing expressions including:

-   “enter a character string ‘Notice of Movie Show’”,-   “select the character string entered”,-   “set the size of the selected character string at 24 points”,-   “center the selected character string”, and-   “give the character string a wavy form”    is converted into the following request describing expressions:-   “enter a character string of document title ‘Notice of    ($A1=($A2=Movie Show)’”,-   “set the size of the character string of document title at ($B=24)    points”,-   “center the character string of document title”, and-   “give the character string of document title a wavy form.” (Step 55)

Next, the function translation unit 41 translates the request describingexpression into a function describing expression by redefining thevariable elements included in the request describing expression. Onfinding a variable element in the request describing expression, thefunction translation unit 41 asks the user, through the user interactionunit 31, to specify a value to be set to the variable element. When theuser enters a word (or character string) corresponding to thedefinition, the function translation unit 41 replaces the variableelement of the request describing expression with the word, thusconverting it into a function describing expression. For example, whenthe request describing expression includes “enter a character string ofdate ‘($Month=) ($Day=), ($Year=)’”, the user is requested to specifyvalues for the three variable elements, which give a translated form ofthe function describing expression: “enter a character string of date‘($Month=December) ($Day=1), ($Year=2002)’.” Similarly, the user isrequested to specify values for the variable elements in requestdescribing expressions “enter a character string of place ‘($P=)’”,“enter a character string of title ‘($T=)’”, and “enter a characterstring of summary ‘($S=)’.” Thus, the translated version of the requestdescribing expressions with all the variable elements fixed is obtained.(Step 56)

Next, the instruction transmission unit 39 converts the functiondescribing expressions with all the variable elements fixed into aninstruction sequence, using the instruction transmission unit dictionary44, and executes the instruction for the software object 45. Forexample, given a function describing expression “start a wordprocessor”, the instruction transmission unit 39 creates an instructionsequence for loading a word processor program stored at a predeterminedlocation on the hard disk, and makes the OS run the instructionsequence. For a function describing expression “enter a character stringof date ‘($Month=December) ($Day=1), ($Year=2002)’”, the instructiontransmission unit 39 creates an instruction sequence for calling afunction of inserting the character string and makes the word processorprogram execute the instruction sequence through the OS. The instructionsequence to be passed to the OS should be created in compliance with theapplication programming interface (API) specification of the OS, and theinstruction sequence to be passed to the word processor program shouldbe created in compliance with the API specification of the wordprocessor. (Step 57)

Thus, being guided by the user interaction unit 31, the user can easilycreate a document data with the title “Notice of Movie Show” by enteringa minimum set of information including “document title”, “date”,“place”, “title”, and “summary.”

It should be noted that the embodiment of the present inventiondescribed so far is not exhaustive. For example, when the data createdis a notice document including a character string such as “To Mr.Yamada” or “To the Members”, a request describing expression such as“enter a character string of address ‘To Mr. ($N=Yamada)’” or “enter acharacter string of address ‘To ($N=the Members)’” is created accordingto the function translation unit dictionary. Thus, it is recognized thatthe notice document has an address section including a variable element.Taking this into account, it is possible to associate a system embodyingthe present invention with an existing membership list databasemanagement system. This enables a large number of notice documentsaddressed to the members to be produced all at once by linking thevariable element of the address, $N, with the “member name” field of themembership list database.

The above embodiment handled contents data created by software objects,such as a word processor. It is also possible to handle control sequencedata for controlling other software objects or hardware devices. Forexample, it is possible to create a natural language expression of acontrol sequence data for operating a certain hardware device and readit aloud with an audio output controller. This provides an interfacehaving good operability for beginners who are unaccustomed to deviceoperations.

According to the present invention, any data created by a softwareobject is converted into natural language expressions used for realizingthe user's request, irrespective of the format or content of the data.This improves the efficiency of searching data using character stringsof natural language. For example, when the data searching is carried outwith a keyword “movie”, it is now possible to locate not only a documentdata with the title “Notice of Movie Show” but also a control sequencedata for a videocassette recorder to “program the recording of a movie.”The latter type of searching cannot be carried out when the data isrepresented in a nonverbal way. Thus, data reusability is improved.

1. A method of describing an existing data using natural language, whichis characterized in that a computer carries out a process includingsteps of: designating an existing data created by a specific softwareobject; analyzing the aforementioned data to convert it into aninstruction sequence that the software object has executed to create theaforementioned data; converting the instruction sequence into a functiondescribing expression of natural language that can be understood by auser; and obtaining semantic information from the function describingexpression and creating a request describing expression by adding ameaning to the function describing expression.
 2. A program for making acomputer carry out the method according to claim
 1. 3. The methodaccording to claim 1, wherein the designated data is converted into aninstruction sequence, using a dictionary specifying the correspondencebetween instruction sequences that the software object can execute anddata formats.
 4. The method according to claim 1, wherein theinstruction sequence is converted into a function describing expression,using a dictionary specifying the correspondence between functiondescribing expressions of natural language understandable to the userand instruction sequences.
 5. The method according to claim 1, wherein arequest describing expression is created from the function describingexpression, using a dictionary specifying the correspondence betweensemantic expressions of user's requests and functional descriptions. 6.The method according to claim 5, wherein the dictionary is a conversiontable listing words and phrases used in the function describingexpression or request describing expression, where each word or phraseis paired with one or more words or phrases that are replaceable witheach other.